package util

import "strings"

// GetBetweenStr
// @Description: 获取字符串之间的内容
// @param str 需要截取的字符串
// @param start 开始位置
// @param end 结束位置
func GetBetweenStr(str, start, end string) string {
	n := strings.Index(str, start)
	if n == -1 {
		n = 0
	}
	str = string([]byte(str)[n:])
	m := strings.Index(str, end)
	if m == -1 {
		m = len(str)
	}
	str = string([]byte(str)[:m])
	return str
}

// Substr
// @Description: 字符串从指定位置向下截取一定的长度字符串
// @param str 需要截取的字符串
// @param start 开始位置
// @param length 截取长度
func Substr(str string, start, length int) string {
	rs := []rune(str)
	rl := len(rs)
	end := 0

	if start < 0 {
		start = rl - 1 + start
	}
	end = start + length

	if start > end {
		start, end = end, start
	}

	if start < 0 {
		start = 0
	}
	if start > rl {
		start = rl
	}
	if end < 0 {
		end = 0
	}
	if end > rl {
		end = rl
	}

	return string(rs[start:end])
}
